import Vue from 'vue'
import VueClipboard from 'vue-clipboard2'	//	复制到剪切板

import Cookies from 'js-cookie'

import 'normalize.css/normalize.css' // CSS重置的替代方案

import Element from 'element-ui'

import './styles/element-variables.scss'
// import enLang from 'element-ui/lib/locale/lang/en'// 如果使用中文语言包请默认支持，无需额外引入，请删除该依赖

import '@/styles/index.scss' // 全局css
import '@/styles/base.scss' // 自定义css
import '@/styles/style1.scss' // 自定义皮肤1

import App from './App'
import store from './store'
import router from './router'

import './icons' // 图标
import './permission' // 权限控制
import './utils/error-log' // 错误日志

import * as filters from './filters' // 全局 filters

import * as api from '@/api/common/common'//全局API
Vue.prototype.$api = api

// 注册一个全局自定义指令 `v-has`
Vue.directive('has', {
  inserted: function(el, binding) {
    if (!Vue.prototype.$_has(binding.value)) {
      el.parentNode.removeChild(el)
    }
  }
})
// 权限检查方法（且把该方法添加到vue原型中）
Vue.prototype.$_has = function(value) {
  let isExist = false
  // 从浏览器缓存中获取权限数组（该数组在登入成功后拉取用户的权限信息时保存在浏览器的缓存中）
  if (store.state.user.is_super > 0 || store.state.user.routes_btn.indexOf(value) >= 0) {
    // 若在按钮中定义的权限字段能在后端返回的权限数组中能找到，则该按钮可显示
    isExist = true
  }
  return isExist
}

Vue.use(Element, {
  size: Cookies.get('size') || 'medium' // 设置element-ui 默认字体大小
  // locale: enLang // 如果使用中文，无需设置，请删除
})

Vue.use(VueClipboard)

// 注册全局实用程序筛选器
Object.keys(filters).forEach(key => {
  Vue.filter(key, filters[key])
})

Vue.config.productionTip = false

new Vue({
  el: '#app',
  router,
  store,
  render: h => h(App)
})
